
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<HTML>

<HEAD>
   <TITLE>vrotv_c</TITLE>
</HEAD>

<BODY style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);">
<A name="TOP"></A>

<table style="text-align: left; margin-left: auto; margin-right: auto; width: 800px;"
 border="0" cellpadding="5" cellspacing="2">
  <tbody>
    <tr>
      <td style="background-color: rgb(153, 153, 153); vertical-align: middle; text-align: center;">
      <div align="right"> 
      <small><small><a href="index.html">Index Page</a></small></small>
      </div>
      <b>vrotv_c</b> </td>
    </tr>

    <tr>
      <td style="vertical-align: top;">

<small><div align="center">
<A HREF="index.html#A">A</A>&nbsp;
<A HREF="index.html#B">B</A>&nbsp;
<A HREF="index.html#C">C</A>&nbsp;
<A HREF="index.html#D">D</A>&nbsp;
<A HREF="index.html#E">E</A>&nbsp;
<A HREF="index.html#F">F</A>&nbsp;
<A HREF="index.html#G">G</A>&nbsp;
<A HREF="index.html#H">H</A>&nbsp;
<A HREF="index.html#I">I</A>&nbsp;
<A HREF="index.html#J">J</A>&nbsp;
<A HREF="index.html#K">K</A>&nbsp;
<A HREF="index.html#L">L</A>&nbsp;
<A HREF="index.html#M">M</A>&nbsp;
<A HREF="index.html#N">N</A>&nbsp;
<A HREF="index.html#O">O</A>&nbsp;
<A HREF="index.html#P">P</A>&nbsp;
<A HREF="index.html#Q">Q</A>&nbsp;
<A HREF="index.html#R">R</A>&nbsp;
<A HREF="index.html#S">S</A>&nbsp;
<A HREF="index.html#T">T</A>&nbsp;
<A HREF="index.html#U">U</A>&nbsp;
<A HREF="index.html#V">V</A>&nbsp;
<A HREF="index.html#W">W</A>&nbsp;
<A HREF="index.html#X">X</A>&nbsp;
</div></small>
       <br>
       <table style="text-align: left; width: 60%; margin-left: auto; margin-right: auto;"
       border="0" cellspacing="2" cellpadding="2">
        <tbody>
          <tr>
            <td style="width: 50%; text-align: center;">
            <small>
              <a href="#Procedure">Procedure<br></a>
              <a href="#Abstract">Abstract<br></a>
              <a href="#Required_Reading">Required_Reading<br></a>
              <a href="#Keywords">Keywords<br></a>
              <a href="#Brief_I/O">Brief_I/O<br></a>
              <a href="#Detailed_Input">Detailed_Input<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Detailed_Output">Detailed_Output<br></a>
              <a href="#Parameters">Parameters<br></a>
              <a href="#Exceptions">Exceptions<br></a>
              <a href="#Files">Files<br></a>
              <a href="#Particulars">Particulars<br></a>
              <a href="#Examples">Examples<br></a>

              </small>
              </td>
              <td style="vertical-align: top; width: 50%; text-align: center;">
              <small>               <a href="#Restrictions">Restrictions<br></a>
              <a href="#Literature_References">Literature_References<br></a>
              <a href="#Author_and_Institution">Author_and_Institution<br></a>
              <a href="#Version">Version<br></a>
              <a href="#Index_Entries">Index_Entries<br></a>
             </small>
            </td>
          </tr>
        </tbody>
</table>

<h4><a name="Procedure">Procedure</a></h4>
<PRE>
   void vrotv_c ( ConstSpiceDouble  v     [3],
                  ConstSpiceDouble  axis  [3],
                  SpiceDouble       theta,
                  SpiceDouble       r     [3] ) 

</PRE>
<h4><a name="Abstract">Abstract</a></h4>
<PRE>
 
   Rotate a vector about a specified axis vector by a specified 
   angle and return the rotated vector. 
 </PRE>
<h4><a name="Required_Reading">Required_Reading</a></h4>
<PRE>
 
   <a href="../req/rotation.html">ROTATION</a>
 </PRE>
<h4><a name="Keywords">Keywords</a></h4>
<PRE>
 
   ROTATION,  VECTOR 
 

</PRE>
<h4><a name="Brief_I/O">Brief_I/O</a></h4>
<PRE>
   VARIABLE  I/O  DESCRIPTION 
   --------  ---  -------------------------------------------------- 
   v          I   Vector to be rotated. 
   axis       I   Axis of the rotation. 
   theta      I   Angle of rotation (radians). 
   r          O   Result of rotating v about axis by theta. 
 </PRE>
<h4><a name="Detailed_Input">Detailed_Input</a></h4>
<PRE>
 
   v          is a 3-dimensional vector to be rotated. 

   axis       is the axis about which the rotation is to be 
              performed. 

   theta      is the angle through which v is to be rotated about 
              axis. 
 </PRE>
<h4><a name="Detailed_Output">Detailed_Output</a></h4>
<PRE>
   r          is the result of rotating v about axis by theta. 
              If axis is the zero vector, r = v. 
 </PRE>
<h4><a name="Parameters">Parameters</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Exceptions">Exceptions</a></h4>
<PRE>
   Error free.
  
   1)  If the input axis is the zero vector r will be returned 
       as v.
</PRE>
<h4><a name="Files">Files</a></h4>
<PRE>
 
   None. 
</PRE>
<h4><a name="Particulars">Particulars</a></h4>
<PRE>
 
   This routine computes the result of rotating (in a right handed 
   sense) the vector v about the axis represented by axis through 
   an angle of theta radians. 

   If w is a unit vector parallel to axis, then r is given by: 

       r = v + ( 1 - cos(theta) ) (w X(w X v)) + sin(theta) (w X v) 

   where &quot;X&quot; above denotes the vector cross product. 
 </PRE>
<h4><a name="Examples">Examples</a></h4>
<PRE>
 
   If axis = ( 0, 0, 1 ) and theta = pi/2 then the following results 
   for r will be obtained 

           v                           r 
      -------------             ---------------- 
      ( 1, 2, 3 )                ( -2, 1, 3 ) 
      ( 1, 0, 0 )                (  0, 1, 0 ) 
      ( 0, 1, 0 )                ( -1, 0, 0 ) 


   If axis = ( 0, 1, 0 ) and theta = pi/2 then the following results 
   for r will be obtained 

           v                           r 
      -------------             ---------------- 
      ( 1, 2, 3 )                (  3, 2, -1 ) 
      ( 1, 0, 0 )                (  0, 0, -1 ) 
      ( 0, 1, 0 )                (  0, 1,  0 ) 


   If axis = ( 1, 1, 1 ) and theta = pi/2 then the following results 
   for r will be obtained 

           v                                     r 
      -----------------------------      ----------------------------- 
      ( 1.0,     2.0,     3.0     )      ( 2.577.., 0.845.., 2.577.. ) 
      ( 2.577.., 0.845.., 2.577.. )      ( 3.0      2.0,     1.0     ) 
      ( 3.0      2.0,     1.0     )      ( 1.422.., 3.154.., 1.422.. )  
      ( 1.422.., 3.154.., 1.422.. )      ( 1.0      2.0,     3.0     ) 

 </PRE>
<h4><a name="Restrictions">Restrictions</a></h4>
<PRE>
 
   None. 
  </PRE>
<h4><a name="Literature_References">Literature_References</a></h4>
<PRE>
 
   None. 
 </PRE>
<h4><a name="Author_and_Institution">Author_and_Institution</a></h4>
<PRE>
   N.J. Bachman    (JPL) 
   H.A. Neilan     (JPL) 
   W.L. Taber      (JPL) 
 </PRE>
<h4><a name="Version">Version</a></h4>
<PRE>
 
   -CSPICE Version 1.0.1, 05-FEB-2003 (NJB)

       Header examples were corrected.  Exceptions section filled in.
       Miscellaneous header corrections were made.

   -CSPICE Version 1.0.0, 22-OCT-1998 (NJB)
</PRE>
<h4><a name="Index_Entries">Index_Entries</a></h4>
<PRE>
 
   vector rotation about an axis 
 </PRE>
<h4>Link to routine vrotv_c source file <a href='../../../src/cspice/vrotv_c.c'>vrotv_c.c</a> </h4>

      </td>
    </tr>
  </tbody>
</table>

   <pre>Wed Jun  9 13:05:32 2010</pre>

</body>
</html>

